package com.whfc.wxmp.api.fse.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.fse.dto.FseGantryDTO;
import com.whfc.fse.dto.FseGantryDataDTO;
import com.whfc.fse.dto.FseGantryDataLogDTO;
import com.whfc.fse.param.FseGantryAddParam;
import com.whfc.fse.param.FseGantryBindParam;
import com.whfc.fse.param.FseGantryEditParam;
import com.whfc.fse.param.FseGantryUnbindParam;

import java.util.Date;

/**
 * @Description 龙门吊服务类
 * @Author hw
 * @Date 2021-06-01 17:39
 * @Version 1.0
 */
public interface WxFseGantryService {

    /**
     * 龙门吊列表(分页)
     *
     * @param deptId
     * @param keyword
     * @param bindFlag
     * @param netState
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<FseGantryDTO> list(Integer deptId, String keyword, Integer bindFlag, Integer netState, Integer pageNum, Integer pageSize);

    /**
     * 龙门吊列表(不分页)
     *
     * @param deptId
     * @param keyword
     * @param bindFlag
     * @param netState
     * @return
     */
    ListData<FseGantryDTO> list(Integer deptId, String keyword, Integer bindFlag, Integer netState);

    /**
     * 添加龙门吊
     *
     * @param param
     */
    void add(FseGantryAddParam param);

    /**
     * 修改龙门吊
     *
     * @param param
     */
    void edit(FseGantryEditParam param);

    /**
     * 删除龙门吊
     *
     * @param gantryId
     */
    void del(Integer gantryId);

    /**
     * 绑定硬件
     *
     * @param param
     */
    void bind(FseGantryBindParam param);

    /**
     * 解绑硬件
     *
     * @param param
     */
    void unbind(FseGantryUnbindParam param);

    /**
     * 龙门吊监测
     *
     * @param gantryId
     * @return
     */
    FseGantryDataDTO monitor(Integer gantryId);

    /**
     * 龙门吊详情
     *
     * @param gantryId
     * @return
     */
    FseGantryDTO details(Integer gantryId);

    /**
     * 龙门吊历史记录
     *
     * @param gantryId
     * @param time
     * @return
     */
    ListData<FseGantryDataLogDTO> gantryLog(Integer gantryId, Date time);
}
